In the field of communications and networking, a number of approaches are employed for establishing routes within a network. A first approach is based on static routing protocols wherein a network administrator typically provisions the routes within the network, thereby provisioning the routing tables stored in different network elements (such as routers). Accordingly, this static routing enables the path through the network that the data traverses to be known and allows for a greater degree of control in comparison to routing based on dynamic routing protocols (discussed below). Disadvantageously, if links or network elements within the static route are unavailable or are not operating, data attempting to be transmitted through the static route is lost or not routed.
A second approach for establishing routes within a network is based on dynamic routing, wherein dynamic routing protocols, such as Border Gateway Protocol (BGP) and Interior Gateway Protocol (IGP), are employed. Such dynamic routing protocols enable network elements within a network to announce or advertise which network elements that they are coupled to in the network. Accordingly, the network elements are able to make intelligent route selection based on an understanding of the network topology because of the data received from such dynamic routing protocols. Therefore, the network elements are aware if a link or network element is unavailable and modify the route to traverse a different link and/or network element within the network. Furthermore, the network elements can be configured to allow for the distribution of static routes using the dynamic routing protocols. Accordingly, the network element can announce static routes that it is aware to other network elements in the network.
Moreover, within networks, the storage of data, such as web pages from various web sites, can be stored in a bank of servers known as a web farm. In particular, a web farm can store web pages from a number of different web sites. Further, a given web page can be stored across different web farms. For example, a given web page may be stored in web farms within the United States as well as web farms in various European and Asian countries. Accordingly, if a web page cannot be retrieved from one web farm because of equipment failure related to the servers therein, the web page may be retrieved from other web farms.
In a typical network configuration, the bank of servers within a web farm are coupled to the network through an edge router using static routes. In operation, the edge router announces these static routes to other network elements in the network using dynamic routing protocols (as described above). However, in such a configuration, if the static route becomes unavailable (because the server or link is “down” for example), the static routing protocols do not provide a mechanism to determine this unavailability. Accordingly, when requests are made for web pages for a given static route that is unavailable from the edge router, the edge router is unable to retrieve this web page for the requesting device.
A conventional approach to preclude such a scenario is to have the bank of servers and the edge router include communications based on a dynamic routing protocol, thereby enabling a server within the bank of servers to communicate the availability of routes between itself and the edge router. Accordingly, this router can announce the changes in the availability of routes learned between itself and the bank of servers to other network elements in the network. Requests will, therefore, not be made to the edge router for a given web page that is unavailable because a route is “down”, thereby allowing the requesting device to obtain the web page from another server in another web farm. Disadvantageously, this approach requires that the servers become pseudo routers by requiring communications based on the dynamic routing protocol. Furthermore, servers within a web farm can be based on different manufacturers and executing different operating systems. For example, a first server can be a workstation that is executing a first type of operating system, while a second server can be a personal computer that is executing a second type of operating system. Accordingly, the different servers may have to execute different types of dynamic routing protocol software. Moreover, as described, this approach can be expensive through the installation of this routing software on each of the different servers across different web farms.
Another typical approach to preclude having an edge router announcing the availability of a web page when the route for this page is not accessible within a server of a bank of servers encompasses periodic checks and updates by the web sites that are allowing their web pages to be hosted within the web farm. In particular, a computing or monitoring device external to the edge router and the web farm checks availability of web pages within the web farm. Upon determining that a web page is unavailable, the computing device logs into the edge router and modifies the static routing tables therein to remove the associated static route. Additionally, this computing device can continue to check when the web page is subsequently available and again log into the edge router to modify the static routing tables therein to add the associated static route. However, as described, such an approach can require a separate monitoring device, developing associated monitoring software and a flood of logins into the edge router and modification to the static routing tables therein.